草庐IT

3072 bytes

全部标签

java - 有效地从 byte[] 数组中提取任意长度的位序列

我正在寻找在任意位置提取任意长度(0publicabstractclassBitArray{byte[]bytes=newbyte[2048];intbitGet;publicBitArray(){}publicvoidreadNextBlock(intinitialBitGet,intcount){//substituteforreadingfromaninputstreamfor(inti=(initialBitGet>>3);i>=3;return(((bytes[byteIndex]>shift)&mask;}}staticclassVersion2extendsBitArra

Java:比 String(byte[]) 更快的替代品

我正在开发一个基于Java的二进制数据下载器。此数据通过基于文本的协议(protocol)(UU编码)传输。对于网络任务,使用了netty库。二进制数据由服务器拆分成数千个小数据包并发送到客户端(即Java应用程序)。每次收到新消息(数据)时,我都会从netty收到一个ChannelBuffer对象。现在我需要处理这些数据,除了其他任务外,我还需要检查来自服务器的包的header(比如HTTP状态行)。为此,我调用ChannelBuffer.array()来接收一个byte[]数组。然后我可以通过newString(byte[])将这个数组转换为字符串,并轻松检查(例如比较)它的内容(

java - 将 InputStream 转换为 byte[] 的最有效方法?

这个问题在这里已经有了答案:ConvertInputStreamtobytearrayinJava(34个答案)关闭9年前。ChannelBufferInputStreamresponseStream=(ChannelBufferInputStream)response.getBodyAsStream();ArrayListarrayList=newArrayList();try{while(responseStream.available()>0){arrayList.add(responseStream.readByte());}}catch(IOExceptione){e.pri

java - Java UDP中如何获取实际数据包大小 `byte[]`数组

这是我上一个问题的后续问题:JavaUDPsend-receivepacketonebyone正如我在那里指出的那样,基本上,我想通过UDP一个接一个地接收数据包。这是一个示例代码:ds=newDatagramSocket(localPort);byte[]buffer1=newbyte[1024];DatagramPacketpacket=newDatagramPacket(buffer1,buffer1.length);ds.receive(packet);Log.d("UDP-receiver",packet.getLength()+"bytesoftheactualpacket

java - 如何指定一个常量是byte还是short?

对于long数据类型,我可以在一个数字后面加上L,让编译器知道它是long。byte和short呢?作为动机,以下会产生类型不匹配错误:Lista=Arrays.asList(1,2,3,4); 最佳答案 您实际谈论的是整数literal(1)与长literal(1L).在Java中实际上没有短字面量或字节字面量这样的东西。但它通常并不重要,因为存在从整数文字到类型byte、short和char。因此:finalbyteone=1;//notypecastrequired.仅当文字在要求的范围内时才允许隐式转换。如果不是,则需要进行

java - 将 Document 对象转换为 Byte[]

我是这样初始化文档对象的:DocumentBuilderFactorydocFactory=DocumentBuilderFactory.newInstance();DocumentBuilderdocBuilder=docFactory.newDocumentBuilder();Documentdoc=docBuilder.newDocument();之后,我通过向doc对象插入数据来构建XML文件。最后,我将内容写入计算机上的文件。我的问题是如何将doc中的内容写入byte[]?*这是我将内容写入XML文件的方式:TransformerFactorytransformerFacto

java - 为什么在自动装箱期间发生 final long 到 Byte 的编译错误,但 final int 到 Byte 是可以的?

将int和short类型的常量自动装箱到Byte时没有错误,但long类型do有错误。为什么?finalinti=3;Byteb=i;//noerrorfinalshorts=3;Byteb=s;//noerrorfinallongl=3;Byteb=l;//error 最佳答案 来自JLSSec5.2,"Assignmentcontexts"(强调我的):Inaddition,iftheexpressionisaconstantexpression(§15.28)oftypebyte,short,char,orint:Anarro

java - BigInteger 到 byte[]

我需要转换JavaBigInteger实例到它的值(以字节为单位)。从API中,我获得了此方法toByteArray(),它返回一个byte[],其中包含此BigInteger的二进制补码表示形式。因为我所有的数字都是正128位(16字节)整数,所以我不需要2的补码形式给我128位+符号位(129位)...有没有办法直接从BigInteger获取标准(没有2的补码形式)表示?如果不是,我如何右移整个byte[17]数组以丢失符号位以获得byte[16]数组? 最佳答案 你根本不需要移动。符号位是字节数组中最重要的(=最左边的)位。由

安卓 : Error converting byte to dex

所以,从升级build.gradle(Project)后运行项目时出现以下错误dependencies{classpath'com.android.tools.build:gradle:2.0.0-alpha2'//NOTE:Donotplaceyourapplicationdependencieshere;theybelong//intheindividualmodulebuild.gradlefiles}到dependencies{classpath'com.android.tools.build:gradle:2.0.0-alpha3'//NOTE:Donotplaceyoura

安卓 : Error converting byte to dex

所以,从升级build.gradle(Project)后运行项目时出现以下错误dependencies{classpath'com.android.tools.build:gradle:2.0.0-alpha2'//NOTE:Donotplaceyourapplicationdependencieshere;theybelong//intheindividualmodulebuild.gradlefiles}到dependencies{classpath'com.android.tools.build:gradle:2.0.0-alpha3'//NOTE:Donotplaceyoura